home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d879.lha / DiskTest / Source / ts.h < prev   
Text File  |  1993-04-16  |  2KB  |  68 lines

  1. /*------------------------------------*
  2.  | File: TS.h - Include file for TS.c |
  3.  *------------------------------------*/
  4.  
  5. /**
  6.  | #define's:
  7.  | - offset, inside the Bevel Box, of the text scrolling region;
  8.  |   actually defined in terms of the font width/height.
  9. **/
  10.  
  11. #define TEXT_XOFFSET      (fontWidth  / 2 + 2)
  12. #define TEXT_YOFFSET      (fontHeight / 2)
  13.  
  14. /**
  15.  | Local structures:
  16.  | - a double-linked list structure, to hold the text lines to be
  17.  |   presented in the scroller (it is simple to implement, and
  18.  |   to do it myself is funnier that to use OS List structures :-).
  19. **/
  20.  
  21. typedef struct sLine {
  22.   struct sLine  *sl_Back;
  23.   struct sLine  *sl_Forw;
  24.   size_t         sl_Length;
  25.   char           sl_Text[1];
  26. } Line;
  27.  
  28. /**
  29.  | Local global variables:
  30.  | - pointers to the first and last line of text;
  31.  | - a pointer to the window raster port;
  32.  | - scroller variables;
  33.  | - variables for Bevel Box and text drawing.
  34.  |
  35. **/
  36.  
  37. static Line  *firstLine        = NULL;
  38. static Line  *lastLine         = NULL;
  39.  
  40. static struct RastPort *pRP;
  41.  
  42. static USHORT numLines       = 0;   /* Number of actual text lines     */
  43. static USHORT topLine        = 0;   /* Actual top line (first is zero) */
  44. static USHORT oldNumLines    = 0;   /* Nr. lines and top line the last */
  45. static USHORT oldTopLine     = 0;   /*   time the scroller was updated */
  46. static USHORT linesVisible;         /* Number of lines and columns in  */
  47. static USHORT columnsVisible;       /*   the scrolling region          */
  48. static USHORT fontHeight;           /* Height and width of the window  */
  49. static USHORT fontWidth;            /*   text font (pixels)            */
  50. static USHORT viewHeight;           /* Height and width of the text    */
  51. static USHORT viewWidth;            /*   scrolling region (pixels)     */
  52. static USHORT usefulHeight;         /* Height and width of the zone to */
  53. static USHORT usefulWidth;          /*   be refreshed                  */
  54.  
  55. static USHORT bevelLeft, bevelTop, bevelWidth, bevelHeight;
  56. static USHORT textLeft, textTop;
  57.  
  58. /**
  59.  | Local procedure prototypes
  60. **/
  61.  
  62. static void RenderLine
  63.   (USHORT x, USHORT y, USHORT w, char *text, size_t len);
  64. static Line *ScanList(register Line *pL, register int n);
  65. static void SetScroller
  66.   (struct Window *pW, struct Gadget *pG, USHORT lV, USHORT nL, USHORT tL);
  67. static void UpdateScroller(void);
  68.